class Solution
{
public:
    string reverseVowels(string s)
    {
        int i = 0, j = s.size() - 1;
        while (i < j)
        {
            if (!isVowel(s[i]))
            {
                ++i;
            }
            else if (!isVowel(s[j]))
            {
                --j;
            }
            else
            {
                swap(s[i], s[j]);
                ++i;
                --j;
            }
        }
        return s;
    }

    bool isVowel(char c)
    {
        switch (c)
        {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
        case 'A':
        case 'E':
        case 'I':
        case 'O':
        case 'U':
        {
            return true;
        }
        default:
            return false;
        }
    }
};